package cn.xuewenbao.edu.service;

import cn.xuewenbao.edu.entity.Course;
import cn.xuewenbao.edu.entity.vo.CourseBuyLink;
import cn.xuewenbao.edu.entity.vo.CourseIndexVo;
import cn.xuewenbao.edu.entity.vo.CourseInfoVo;
import cn.xuewenbao.edu.entity.vo.CoursePulishVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;

import java.util.List;

/**
 * <p>
 * 课程表 服务类
 * </p>
 *
 * @author mafayu
 * @since 2021-03-30
 */
public interface CourseService extends IService<Course> {

    //根据课程id查询课程基本信息
    Result<CourseInfoVo> getCourseInfo(String courseId, String userId);

    //获取推荐课程（根据发布时间倒序排列）
    Result<List<CourseIndexVo>> getRecommendCourse();

    //获取热门课程（根据购买数）
    Result<List<CourseIndexVo>> getHotCourse();

    //添加课程
    Result<?> addCourse(CoursePulishVo coursePulishVo);

    //根据课程id删除课程
    Result<?> removeCourse(String courseId);

    //根据课程id和作者id删除课程
    Result<?> deleteOwnCourse(String courseId, String userId);

    //根据讲师id获取课程列表
    Result<List<CourseIndexVo>> getOwnCourse(String teacherId);

    String getOrderDescription(String contentId);

    //根据课程id获取课程购买链接
    Result<CourseBuyLink> getCourseBuyLink(String courseId);

    String getCourseChapterName(String courseChapterId);
}
